!!==============================================================================
!!
!! LA PEQUEÑA CERILLERA:
!! Definición de atributos, clases y objetos
!!
!!==============================================================================
!!
!!
!! File: cerillera_obj.inf
!! Author(s): J. Francisco Martín (jfm.lisaso@gmail.com)
!! Cover-art: Anne Anderson
!! Language: ES (Castellano)
!! System: Inform/INFSP 6
!! Platform: Máquina-Z
!! Release: 1.2
!! Released: 2010/12/13
!! Notes:
!!
!!
!!------------------------------------------------------------------------------
!!
!!
!! Este programa es software libre: usted puede redistribuirlo y/o
!! modificarlo bajo los términos de la Licencia Pública General GNU
!! publicada por la Fundación para el Software Libre, ya sea la versión
!! 3 de la Licencia, o (a su elección) cualquier versión posterior.
!!
!! Este programa se distribuye con la esperanza de que sea útil, pero
!! SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita MERCANTIL o
!! de APTITUD PARA UN PROPÓSITO DETERMINADO. Consulte los detalles de
!! la Licencia Pública General GNU para más información.
!!
!! Debería haber recibido una copia de la Licencia Pública General GNU
!! junto a este programa. En caso contrario, consulte
!! .
!!
!! Copyright (c) 2010, J. Francisco Martín
!!
!!
!!==============================================================================
!!==============================================================================
!! Definición de clases
!!------------------------------------------------------------------------------
Class Room
with description "EN CONSTRUCCIÓN.",
has light;
Class Thing
with clarification 0,
size 0, ! Tamaño
volume 0, ! Volumen
weight 0, ! Peso
capacity_number -1, ! Capacidad total (número de objetos)
capacity_size -1, ! Capacidad total (tamaño)
capacity_volume -1, ! Capacidad total (volumen)
capacity_weight -1; ! Capacidad total (peso)
Class Item
class Thing,
with description [;
switch (GRAMMATICAL_FLEXION) {
1,2,3: print "Tiene", (n) self;
4,5,6: print "Tenía", (n) self;
}
print " el mismo aspecto que cual";
if ( self has pluralname ) print "esquiera otr";
else print "quier otr";
print (o) self, " ", (name) self, " ";
switch (GRAMMATICAL_FLEXION) {
1: "que haya visto antes.";
2: "que hayas visto antes.";
3: "que haya visto antes.";
4: "que hubiese visto antes.";
5: "que hubieses visto antes.";
6: "que hubiese visto antes.";
}
];
Class Atrezzo
class Thing
has scenery;
!!==============================================================================
!! LIMBO: En algún lugar
!!------------------------------------------------------------------------------
Room LIMBO "En algún lugar"
with name 'limbo' 'sueno' 'lugar',
description [;
print "Más allá de la barrera casi insuperable que separa la
realidad de todo lo demás. Un lugar etéreo, donde la vida, la
materia y la vitalidad no son necesariamente constantes; un lugar
donde el tiempo y el espacio no existen tal y como los capta
nuestro ser despierto..";
if ( self hasnt visited ) print ". Bienvenido al mundo del Sueño";
".";
];
Object OBJayuda
with found_in [; return true; ],
!!----------------------
DescripcionLocalidad_explicado false,
DescripcionLocalidad_ayuda false,
DescripcionLocalidad_1 [;
print_ret (stparser) "Puedes volver a obtener una descripción de
los alrededores tecleando MIRA A TU ALREDEDOR o simplemente MIRA.";
],
DescripcionLocalidad_2 [;
print_ret (stparser) "En el futuro puedes usar indistintamente la
instrucción MIRA o limitarte a pulsar la tecla ~intro~ si quieres
ver de nuevo la descripción del lugar en que se encontraba la
pequeña protagonista. Si te atascas y no sabes cómo continuar,
puedes volver a teclear AYUDA en cualquier momento.";
],
!!----------------------
DescripcionObjetos_explicado false,
DescripcionObjetos_ayuda false,
DescripcionObjetos_1 [;
print_ret (stparser) "Los objetos tienen sus propias descripciones
también. Puedes averiguar más cosas sobre un objeto en particular
usando la instrucción EXAMINA. Por ejemplo, prueba a teclear
EXAMINA LA CALLE.";
],
DescripcionObjetos_2 [;
print_ret (stparser) "Dado que examinar objetos es una acción muy
frecuente, puedes abreviar el comando y teclear EX o simplemente X.
De este modo, la instrucción X CALLE es equivalente a escribir
EXAMINA LA CALLE.";
],
!!----------------------
Inventario_explicado false,
Inventario_ayuda false,
Inventario_1 [;
print_ret (stparser) "Para sabes cuáles son las cosas que la niña
llevaba encima, teclea INVENTARIO.";
],
Inventario_2 [;
print_ret (stparser) "Comprobar cuáles son los objetos que lleva la
protagonista es una acción muy habitual de forma que, al igual que
muchas otras, también podrás abreviarla. INVENTARIO, INV o
simplemente I, harán que se imprima el siguiente listado:";
],
!!----------------------
ComandoUsa_explicado false,
ComandoUsa [;
print_ret (stparser) "Normalmente podrás intentar manipular los
pocos objetos con los que te encuentres en el cuento de muchas
formas distintas. Habiendo tantas opciones diferentes, la
instrucción USA resulta demasiado ambigua. Prueba a realizar una
acción más concreta.";
],
!!----------------------
Abre_explicado false,
Abre_ayuda false,
Abre_1 [;
print_ret (stparser) "Si quieres abrir la caja de cerillas,
simplemente teclea ABRE LA CAJA DE CERILLAS.";
],
Abre_2 [;
print_ret (stparser) "De forma análoga, también podrás cerrarla
usando la instrucción CIERRA CAJA. Además, normalmente los objetos
se pueden manipular de muchas otras maneras (puedes intentar
cogerlos y dejarlos, empujarlos, romperlos, comerlos, etc.) Un
mensaje te informará del efecto de la acción sobre el objeto.";
],
!!----------------------
Enciende1_explicado false,
Enciende2_explicado false,
Enciende_1 [;
print_ret (stparser) "Intenta encender una cerilla para que la
pequeña se caliente con ella.";
],
Enciende_2 [;
print_ret (stparser) "Para encender una cerilla, ABRE LA CAJA y
teclea ENCIENDE CERILLA.";
],
!!----------------------
MetaComandos_explicado false,
MetaComandos [;
print_ret (stparser) "Si quieres salir del cuento, teclea
TERMINAR. Para guardar tu posición actual, teclea GUARDAR. CARGAR
te permitirá retomar una partida que hayas guardado previamente, y
REINICIAR comenzará el relato de nuevo desde el principio. Además,
si en algún momento quieres volver ~un paso atrás~, teclea
DESHACER.";
],
!!----------------------
AyudaGeneral [;
print_ret (stparser) "Hay muchas otras acciones que puedes intentar
hacer para conocer más cosas de la protagonista y su entorno. No
tengas miedo de experimentar con nuevas instrucciones.";
],
!!----------------------
gestor_pistas [;
!! Descripción de la localidad actual: comando MIRA
if ( ~~self.DescripcionLocalidad_explicado ) {
self.DescripcionLocalidad_ayuda = true;
return self.DescripcionLocalidad_1();
}
!! Descripción de los objetos: comando EXAMINA
if ( ~~self.DescripcionObjetos_explicado ) {
self.DescripcionObjetos_ayuda = true;
return self.DescripcionObjetos_1();
}
!! Objetos que lleva la protagonista: comando INVENTARIO
if ( ~~self.Inventario_explicado ) {
self.Inventario_ayuda = true;
return self.Inventario_1();
}
!! Abrir la caja de cerillas: comando ABRE
if ( ~~self.Abre_explicado ) {
self.Abre_ayuda = true;
return self.Abre_1();
}
!! Encender una cerilla: comando ENCIENDE
if ( ~~self.Enciende1_explicado ) {
self.Enciende1_explicado = true;
return self.Enciende_1();
}
if ( ~~self.Enciende2_explicado ) {
return self.Enciende_2();
}
!! Terminar, reiniciar, guardar, cargar partida...: metacomandos
if ( ~~self.MetaComandos_explicado ) {
self.MetaComandos_explicado = true;
return self.MetaComandos();
}
return self.AyudaGeneral();
],
react_before [;
Burn:
if ( noun == obj_cerilla && caja_cerillas has open
&& ~~self.Enciende1_explicado )
self.Enciende1_explicado = true;
if ( noun == obj_cerilla && caja_cerillas has open
&& ~~self.Enciende2_explicado )
self.Enciende2_explicado = true;
Inv:
if ( ~~self.Inventario_explicado )
self.Inventario_explicado = true;
if ( self.Inventario_ayuda ) {
self.Inventario_ayuda = false;
self.Inventario_2(); new_line;
}
Look:
if ( self.DescripcionLocalidad_ayuda &&
~~self.DescripcionLocalidad_explicado ) {
self.DescripcionLocalidad_explicado = true;
self.DescripcionLocalidad_ayuda = false;
self.DescripcionLocalidad_2(); new_line;
}
Examine:
if ( ~~self.DescripcionObjetos_explicado )
self.DescripcionObjetos_explicado = true;
if ( self.DescripcionObjetos_ayuda ) {
self.DescripcionObjetos_ayuda = false;
self.DescripcionObjetos_2(); new_line;
}
Open:
if ( noun == caja_cerillas && ~~self.Abre_explicado )
self.Abre_explicado = true;
if ( self.Abre_ayuda ) {
self.Abre_ayuda = false;
self.Abre_2(); new_line;
}
Use:
return self.ComandoUsa();
],
react_after [; if ( self hasnt general ) {
give self general; new_line;
print_ret (stparser)"Si es la primera vez que lees un relato
interactivo teclea AYUDA.";
}],
has scenery;
[ EncenderCerilla;
if ( obj_cerilla in caja_cerillas && caja_cerillas hasnt open ) {
if ( ESQUINA.contador_visiones == 0 )
"Todas las cerillas estaban dentro de la caja, y la caja estaba
cerrada.";
give caja_cerillas open;
}
switch ( ESQUINA.contador_visiones ) {
0:
ESQUINA.contador_visiones++;
print "Estaba completamente helada. ¡Si se atreviese a encender un
fósforo para calentarse los dedos! Nadie notaría la falta de uno solo
de ellos, pensó. De modo que agarró uno y: ~¡ritch!~.^";
new_line;
print "¡Cómo chispeó y cómo quemaba! La llama de la cerilla era cálida
y clara, una lucecita maravillosa que trataba resguardar del viento con
sus manitas temblorosas. Parecióle a la pequeña que estaba sentada
junto a una gran estufa de hierro, una con brillantes adornos y pies y
campana de latón. El fuego ardía magníficamente en su interior, ¡y
calentaba tan bien! La niña alargó los pies para calentárselos a su
vez.^";
new_line;
move cerillas_calcinadas to ESQUINA;
move obj_cerilla to caja_cerillas;
print "Pero en ese momento se extinguió la llama, la estufa se
desvaneció, y ella se encontró allí sentada, en mitad del frío, con los
restos de una cerilla consumida entre las manos. Arrojó el palillo
calcinado al suelo.^";
new_line; <>;
1:
ESQUINA.contador_visiones++;
print "Cogió otra de las cerillas y la frotó contra el rascador del
lateral de la caja.^";
new_line;
print "El fósforo ardió y brilló, y un trozo de pared donde se
reflejaba la amarillenta luz se volvió transparente, como si fuese un
suave velo de gasa. La niña pudo ver el interior de una habitación
donde estaba la mesa puesta, cubierta con un blanquísimo mantel y fina
porcelana. En el centro, un pato asado humeaba deliciosamente, relleno
de ciruelas y de pasas y de manzanas. Y entonces sucedió algo aún
mejor: el pato se revolvió, saltó de la bandeja y empezó a arrastrarse
graciosamente por el suelo en dirección a la muchachita, con el
cuchillo y el tenedor aún a la espalda.^";
new_line;
move obj_cerilla to caja_cerillas;
print "Y la cerilla se apagó y el muro volvió a ser frío y sólido de
nuevo.^";
new_line; <>;
2:
ESQUINA.contador_visiones++;
print "Encendió una tercera cerilla...^";
new_line;
print "...y se encontró sentada debajo de un precioso árbol de Navidad,
aún más alto y más bonito que el que viera la pasada Nochebuena, a
través de la puerta de cristales, en casa del rico comerciante.
Millares de velitas ardían en las verdes ramas, y de éstas colgaban
estampas pintadas de vivos colores, semejantes a las que adornaban los
escaparates de las tiendas. La pequeña levantó los dos bracitos hacia
ellas...^";
new_line;
move obj_cerilla to caja_cerillas;
print "...y se apagó el fósforo. Todas las lucecitas se remontaron
hacia arriba, como las chispas de una hoguera que vuelan a la noche, y
entonces se dio cuenta de que todos aquellos puntitos de luz eran en
realidad las rutilantes estrellas del cielo.^";
ESQUINA.estrella_fugaz = true;
new_line; <>;
3:
print "Frotó una nueva cerilla contra la caja.^";
new_line;
print "Su alrededor se iluminó con la cálida llama, y apareció la
anciana abuelita, radiante, dulce y cariñosa. ---¡Abuelita! ---exclamó
la pequeña. ---¡Oh, abuelita, llévame contigo! Sé que te querrás ir
cuando se apague la cerilla, igual que se fueron la estufa y el asado y
el árbol de Navidad... ¡pero tú no me dejes sola! ¡no te vayas sin mí,
abuelita!
^^
Apresuróse a encender tantos fósforos como pudo, afanosa de no perder a
su abuela; y los fósforos brillaron con luz más clara que la del pleno
día. Nunca la abuelita había sido tan alta y tan hermosa; tomó a la
niña del brazo y, envueltas las dos en un gran resplandor, henchidas de
gozo, emprendieron el vuelo hacia las alturas, sin que la pequeña
sintiera ya frío, hambre ni miedo...^";
new_line;
print "Pero en el ángulo de la casa, la fría madrugada descubrió a la
chiquilla, rojas las mejillas y con una sonrisa en los labios...
muerta, muerta de frío en la última noche del año. El sol de la mañana
iluminó el pequeño cadáver hecho aún un ovillo, con un círculo de
cerillas consumidas a su alrededor. ~Quiso calentarse~, dijo la gente.
Pero nadie supo nunca de las maravillas que había visto, ni del
esplendor con que había subido, en compañía de su anciana abuelita, a
la gloria y la alegría del Año Nuevo.^";
KeyCharPrimitive();
new_line;
print (stnegrita) "FIN";
new_line;
KeyCharPrimitive();
new_line; new_line;
print (stcursiva) "Si quieres volver a empezar el cuento pulsa ~",
(stnegrita) "R", (stcursiva) "~^";
print (stcursiva) "Cualquier otra teclar para salir";
if (KeyCharPrimitive() == 'r' or 'R') { @restart; L__M(##Restart, 2); }
else quit;
}
];
!!==============================================================================
!! ESQUINA: Acurrucada en una esquina
!!------------------------------------------------------------------------------
Room ESQUINA "Acurrucada en una esquina"
with name 'esquina',
initial [; if ( self hasnt visited ) {
box ""
"-- ¿Tú crees que hay gente que sobra? "
"-- Los mendigos. "
"-- Los que se mean en el portal. "
"-- Los que no me dan la razón. "
"-- Los que no me dan. "
"-- Definitivamente los mendigos sobran. "
"-- Pero si quitamos a los mendigos... ¿quién"
" va a protagonizar los cuentos y las "
" películas y los documentales? "
"-- Sobre todo en Navidad. "
""
" CRISTINA PEREGRINA"
" Concierto para la acumulación, 2010"
"";
KeyCharPrimitive();
EraseWindow();
"¡Qué frío hacía!; la nieve y la noche comenzaban a caer lentamente
sobre la ciudad aquel día de San Silvestre, el último del viejo
año. En medio del frío y la oscuridad crecientes, una pobre niña
vagaba sola por las calles, descalza y con la cabeza descubierta.
Verdad es que al salir de su casa llevaba zapatillas, pero, ¡de qué
sirvieron! Eran unas zapatillas que su madre había llevado
últimamente, y a la pequeña le venían tan grandes, que las perdió
al cruzar corriendo la calle para librarse de dos coches tirados
por caballos que venían a toda velocidad. Una de las zapatillas no
hubo medio de encontrarla, y la otra se la había puesto un
mozalbete, que salió corriendo con ella mientras gritaba que la
haría servir de cuna el día que tuviese hijos.
^^
Y así la pobrecilla andaba descalza con los desnudos piececitos
completamente amoratados por el frío. En un viejo delantal
guardaba, como si de un tesoro se tratase, un paquete lleno de
fósforos. Había intentado venderlos para conseguir algo de dinero
que llevar a casa, sin embargo, en todo el santo día nadie le había
comprado nada, no le habían dado ni un mísero chelín; volvíase a
casa hambrienta y medio helada, ¡y parecía tan abatida! Rendida, se
sentó en el suelo, en un ángulo que formaban dos casas ---una más
saliente que la otra---, y se acurrucó hecha un ovillo.^";
}],
description [;
if ( self.estrella_fugaz ) {
self.estrella_fugaz = false;
"En lo alto, una estrella se desprendió de su sitio y trazó en
el firmamento una larga estela de fuego. ~Alguien se está
muriendo~ pensó la pequeña, pues su abuela, la única persona
que la había querido de verdad pero que había muerto ya, le
había dicho una vez: ~Cuando una estrella cae, un alma se eleva
al cielo~.
^^
Su pobre abuela... ¡cuánto la echaba de menos!";
}
if ( self.contador_visiones == 0 )
"Desde su rincón, la pequeña veía cómo la nieve se posaba
delicadamente sobre los tejados de los edificios y sobre los
adoquines del suelo, donde había empezado a formarse ya un
delgado manto blanco. Y lo hacían también sobre su delicado
cuerpecito, que no podía dejar de temblar por culpa del frío.";
if ( self.contador_visiones == 1 ) {
print "La nieve continuaba cayendo sobre la calle, acumulándose
en una capa cada vez más y más ancha. El aire era gélido y a la
pequeña le dolía al respirar, pero traía consigo el agradable
olor a leña quemada de las chimeneas, y el aún más agradable de
la comida asada que se filtraba por las rendijas de las puertas
cercanas";
if ( ~~self.estomago_chiquilla ) {
self.estomago_chiquilla = true;
". Su estómago se encogió levemente por culpa del hambre.";
} "."; }
"Las gélidas sombras de la noche lo envolvían ya todo. Solo el
apagado resplandor de los faroles, y el más vivo que salía de las
ventanas de las casas, lograba alejar las tinieblas y arrojaba algo
de luz sobre los grandes copos de nieve que caían pausadamente
sobre los adoquines de la solitaria calle.";
],
before [;
Listen: if ( noun == 0 ) {
"La nieve caía en el más completo silencio. Solo se oía,
ahogado por los gruesos muros, el rumor de las risas y las
conversaciones, y el tintinear de los cubiertos chocando entre
si, que llegaban desde el interior de las casas."; }
Sit:
"Ya estaba sentada.";
StandUp:
"No tenía fuerzas suficientes para volver a levantarse en
aquel momento.";
Smell: if ( noun == 0 ) {
print "El aire era gélido y a la pequeña le dolía al respirar,
pero traía consigo el agradable olor a leña quemada de las
chimeneas";
if ( self.contador_visiones == 1 )
", y el aún más agradable de la comida asada que se
filtraba por las rendijas de la puerta que tenía al lado.";
"."; }
],
contador_visiones 0,
intento_marcharse false,
estomago_chiquilla false,
estrella_fugaz false,
n_to [;
<>; ],
in_to [;
return self.n_to(); ],
out_to [;
return self.cant_go(); ],
cant_go [;
print "Pensó en volver a su casa pero no se atrevía, pues no había
vendido ni un solo fósforo, no tenía dinero ni comida que llevar de
vuelta; si aparecía así, su padre sin duda le pegaría";
if ( ~~self.intento_marcharse ) {
self.intento_marcharse = true;
". Además de que en casa hacía frío también. El tejado, lleno de
goteras, apenas los cobijaba, y el viento entraba por todas partes,
pese a la paja y los trapos con que habían procurado tapar las
rendijas. No, no se atrevía a volver.";
} "."; ];
Object Cerillera "cerillera" ESQUINA
with name_m 'cabello' 'pelo' 'cuello',
name_mp 'cabellos' 'rizos',
name_f 'cerillera' 'nina' 'chiquilla' 'pequena' 'chica' 'muchacha'
'cria' 'chavala' 'chavalilla',
adjectives 'pobre' 'asustada' 'helada' 'congelada' 'hambrienta' 'rubio'
'rubios' 'hermoso' 'hermosos',
description
"Los copos de nieve caían sobre su largo cabello rubio, cuyos
hermosos rizos le cubrían el cuello; pero no estaba ella para
presumir.",
has female;
Atrezzo "calle" ESQUINA
with name_m 'paseo' 'frio',
name_f 'calle' 'via' 'oscuridad',
name_fp 'tinieblas',
gender G_FEMENINO,
adjectives 'adoquinado' 'adoquinada',
description
"La calle estaba completamente desierta. Solo la nieve, el frío y
la oscuridad, y también la pequeña, seguían fuera de casa a
aquellas horas.",
before [;
Listen: <>;
Smell: <>;
],
has female;
Atrezzo "adoquines" ESQUINA
with name_m 'adoquin' 'manto',
name_mp 'adoquines',
name_f 'capa',
gender G_MASCULINO + G_PLURAL,
adjectives 'nieve' 'blanca' 'blanco' 'helado' 'helada' 'gelido'
'gelida' 'frio' 'fria',
description
"Un manto helado y blanco cubre ya casi todos los adoquines del
suelo.",
has male pluralname;
Atrezzo "cielo" ESQUINA
with name_m 'firmamento',
name_f 'estrella' 'nube',
name_fp 'estrellas' 'nubes',
gender G_MASCULINO,
adjectives 'rutilante' 'rutilantes' 'lejana' 'lejanas' 'tililante'
'tililantes' 'tinta' 'jiron' 'jirones',
description
"Entre las nubes se distinguían jirones de un cielo de tinta, un
cielo salpicado de diminutos puntitos de luz lejana y tililante.",
react_before [; Examine: if ( noun == u_obj) <>; ],
has male;
Atrezzo "nieve" ESQUINA
with name_m 'copo' 'nevazo',
name_mp 'copos',
name_f 'nieve' 'nevada' 'nevisca' 'cellisca',
gender G_FEMENINO,
adjectives 'blanco' 'blanca' 'frio' 'fria' 'helado' 'helada' 'gelido'
'gelida',
description
"Los copos de nieve continuaban cayendo, lenta y silenciosamente.",
has female;
Atrezzo "casas" ESQUINA
with name_m 'edificio',
name_mp 'edificios',
name_f 'casa' 'ventana',
name_fp 'casas' 'ventanas',
gender G_FEMENINO + G_PLURAL,
description
"Desde las ventanas de las casas se esparcía sobre la calle un
resplandor anaranjado.",
has female pluralname;
Atrezzo "pared" ESQUINA
with name_m 'muro',
muro_mp 'muros',
name_f 'pared',
name_fp 'paredes',
gender G_FEMENINO,
adjectives 'piedra' 'frio' 'frios' 'fria' 'frias' 'incomodo'
'incomodos' 'incomoda' 'incomodas',
description
"Notaba el tacto de la pared contra su espalda, fría, sólida,
tremendamente incómoda.",
before [; Touch: return self.description(); ],
has female;
Atrezzo "faroles" ESQUINA
with name_m 'farol' 'luz',
name_mp 'faroles' 'luces',
name_f 'farola' 'lucecilla' 'lucecita',
name_fp 'farolas' 'lucecillas' 'lucecitas',
gender G_MASCULINO + G_PLURAL,
adjectives 'debil' 'debiles' 'temblorosa' 'temblorosas',
description
"Los faroles emitían una débil lucecilla temblorosa, apenas
suficiente para ahuyentar las tinieblas a su alrededor.",
has male pluralname;
Atrezzo puerta "puertas" ESQUINA
with name_m 'porton',
name_f 'puerta' 'cancela' 'entrada',
name_mp 'portones',
name_fp 'puertas' 'cancelas' 'entradas',
gander G_FEMENINO + G_PLURAL,
adjectives 'madera' 'tallada' 'talladas' 'oscura' 'oscuras' 'grande'
'grandes' 'bonita' 'bonitas',
description
"Las puertas de las casas cercanas eran grandes y bonitas, con
finos adornos tallados en oscura madera y brillantes aldabas de
metal con rostros de bestia.",
before [;
Pull, Push, PushDir, Turn:
"No tenía fuerzas para molestarse en hacer algo así.";
KnockOn, Open:
print (string) self.description;
" Seguramente se tratasen de las casas de familias ricas e
importantes. No iba a llamar. Tenía miedo de molestar y de que
la echasen de allí.";
],
has female pluralname door transparent;
Atrezzo "aldabas" puerta
with name_m 'aldabon' 'llamador' 'picaporte',
name_f 'aldaba',
name_mp 'aldabones' 'llamadores' 'picaportes',
name_fp 'aldabas',
gender G_FEMENINO + G_PLURAL,
adjectives 'metal' 'metalica' 'metalicas' 'metalico' 'metalicos'
'cara' 'caras' 'de' 'leon' 'leones' 'aguila' 'aguilas' 'oso' 'osos',
description [; return puerta.description(); ],
before [; Use: <>; ],
has female pluralname;
Atrezzo cerillas_calcinadas "restos calcinados" LIMBO
with name_mp 'restos',
! name_m 'fosforo' 'palillo',
! name_f 'cerilla',
! name_mp 'fosforos' 'palillos' 'restos',
! name_fp 'cerillas',
gender G_MASCULINO + G_PLURAL,
adjectives 'consumido' 'calcinado' 'quemado' 'extinguido' 'ennegrecido'
! 'consumida' 'calcinada' 'quemada' 'extinguida' 'ennegrecida'
'consumidos' 'calcinados' 'quemados' 'extinguidos' 'ennegrecidos'
! 'consumidas' 'calcinadas' 'quemadas' 'extinguidas' 'ennegrecidas'
'inservible' 'inservibles',
description [;
if ( ESQUINA.contador_visiones == 1 )
"No son más que los restos ennegrecidos e inservibles de la
cerilla que había usado para calentarse.";
"No son más que los restos ennegrecidos e inservibles de las
cerillas que había usado para calentarse.";
],
has male pluralname;
Class Cerilla
class Item
with short_name "cerilla",
plural "cerillas",
parse_name [ i j j2 j3 j4;
j = NextWord();
if ( j == 'cerilla' or 'fosforo' ) i++;
if ( j == 'cerillas' or 'fosforos' ) {
i++; parser_action = ##PluralFound;
}
if ( i>0 && action_to_be ~= ##Take or ##Remove ) {
j2 = NextWord(); j3 = NextWord(); j4 = NextWord();
if ( j2 == 'de' ) {
if ( j3 == 'la' && j4 == 'caja' ) i = i+3;
if ( j3 == 'caja' ) i = i+2;
}
}
return i;
],
description [;
if ( self hasnt light )
"Un fino palillo de madera rematado con una bolita de fósforo.";
print "La cerilla ardía con una amarillenta y agradable llama ";
if ( self in player ) "en sus manos.";
if ( self in location ) "en el suelo.";
".";
],
before [;
Burn:
if ( ~~IndirectlyContains(Player,self) )
"Aquellas cerillas eran lo único que tenía, y ya había
sacado una del estuche. No podía permitirse andar
desperdiciándolas sin motivo. Si iba a usarlas, usaría
la que había sacado antes.";
if ( ~~IndirectlyContains(Player,caja_cerillas) )
"Necesitaba tener la caja para encender la cerilla con el
rascador del lateral.";
EncenderCerilla();
return true;
Take:
if ( self in caja_cerillas && caja_cerillas hasnt open ) {
; new_line; }
if ( self in player )
"Aquellas cerillas eran lo único que tenía, y ya había sacado
una del estuche. No podía permitirse andar desperdiciándolas
sin motivo. Si iba a usarlas, usaría la que había sacado
antes.";
],
has female;
Item caja_cerillas "caja de cerillas" Cerillera
with invent [;
if ( inventory_stage == 1 && self hasnt open )
print "una caja de cerillas cerrada";
if ( inventory_stage == 1 && self has open )
print "una caja de cerillas abierta";
return true;
],
parse_name [ i j j2 j3 j4;
j = NextWord();
if( j == 'cerillas' ) i++;
if( j == 'caja' or 'cajita' ) {
i++;
j2 = NextWord(); j3 = NextWord(); j4 = NextWord();
if ( j2 == 'de') {
if( j3 == 'las' or 'los' && j4 == 'cerillas' or 'fosforos' )
i = i+3;
if( j3 == 'cerillas' or 'fosforos')
i = i+2;
}
if ( j2 == 'cerillas' or 'fosforos' ) i++;
}
return i;
],
description [;
SetPronoun('-lo', self);
print "Es todo cuanto tenía la pequeña; un pequeño estuche lleno
de cerillas";
if ( self hasnt open ) ". Estaba cerrado.";
".";
],
before [;
Drop, Insert, PutOn, Transfer:
"Aquella caja de cerillas era lo único que tenía. De ninguna
forma iba a dejarla tirada por ahí.";
LetGo:
if ( noun == obj_cerilla ) {
move obj_cerilla to player;
"Cogió una cerilla de dentro de la caja."; }
if ( ~~IndirectlyContains(self, obj_cerilla) )
"Aquellas cerillas eran lo único que tenía, y ya había sacado
una del estuche. No podía permitirse andar desperdiciándolas
sin motivo. Si iba a usarlas, usaría la que había sacado
antes.";
],
after [;
Open: if ( ~~self.flag_open ) {
SetPronoun('-lo', self);
self.flag_open = true;
"Sacó el estuche del bolsillo del delantal y lo abrió con
muchísimo esfuerzo, ya que las manos no dejaban de temblarle y
sus dedos se habían quedado completamente entumecidos por el
frío. Dentro estaban todas aquellas cerillas que no había sido
capaz de vender.";
}
],
flag_open false,
has female transparent container openable ~open;
Cerilla obj_cerilla caja_cerillas;